Closure Compiler Google_Closure_Tools

Closure Compiler là một JavaScript tối ưu hoá mã JavaScript khiến nó được tải về và thực thi nhanh hơn.

Cách thức làm việc

Giải pháp được đưa ra đó là xóa đi khoảng trắng thừa, chú thích và rút gọn tên biến:

  • Chuẩn hóa mã JS bằng cách thêm dấu chấm phẩy (;) vào cuối mỗi câu phát biểu (statement), thêm dấu mở đóng ngoặc nhọn ({}) vào những câu lệnh mà nhà phát triển thường bỏ qua.
  • Xóa toàn bộ khoảng trắng, dấu xuống hàng, tab, ngoại trừ các khoảng trắng trong chuỗi hoặc những câu lệnh như return
  • Rút gọn các tên biến trong một hàm, đặt lại tên thành a, b, c, d,...
  • Một số tối ưu nữa như rút gọn số nguyên (20000 thành 2E4).

Lỗi

Hiện có một lỗi khi sử dụng mã JS đã tối ưu, đưa vào trong FBML (API của ứng dụng Facebook). Cụ thể lỗi như sau:

  • Closure Compiler rút gọn những số nguyên như 2000 thành 2E3 (chuẩn này do W3C đưa ra).
  • Trong khi đó, bộ biên dịch của Facebook lại biến thành 2#hashingcode#_E3. Kết quả là không thực thi được.

Cách sửa lỗi duy nhất là nhà phát triển tự tay chuyển lại 2E3 thành 2000.